1. Field of the Invention
The present invention relates generally to computer bus architectures, and more specifically to a system and method for optimizing bus priority for real time applications.
2. Related Art
In digital computer systems having a plurality of applications, such as processor applications, controller applications, communication interface applications, real time applications, etc., a medium is employed whereby these applications can transfer data to each other. Typically, the medium employed is a physical data channel known as a bus. The bus is connected to a communications port associated with each application. In typical data bus architectures, information is conveyed over the bus in discrete packets (e.g., words). However, since there are multiple applications sharing the same bus, the applications must contend for bus access each time data is to be transferred. Most bus architectures include a bus controller for arbitrating access to the bus.
Temporally, the bus is divided into a series of time slots known as bus cycles. A bus cycle is the period of time for which an application is granted access to the bus. Most bus system architectures use a "fixed priority" as the basis for determining what application has control of the system bus. In such systems, each application requesting bus access has a predetermined priority level that is analyzed by the bus controller for determining access to the bus during a particular bus cycle. Accordingly, a fixed high priority application is granted control over the bus prior to a fixed low priority application. Thus, a fixed high priority application can monopolize the system bus, locking out other applications. This type of architecture makes the inclusion of multiple real time applications (e.g., music, video, telephone, etc.) very difficult and can cause the real time applications to fail during critical time periods (i.e., periods when multiple high priority applications require bus access).
Most fixed high priority applications are categorized as deterministic, since it is known ahead of time how often (i.e., how frequently or periodically) the bus must be accessed (hereinafter referred to as the "application frame"), and what duration (i.e., amount of time) is required during each application frame (hereinafter referred to as the "application duration"). Unfortunately, present systems provide no means for handling critical time periods on a bus with multiple applications that utilize fixed priority systems. Without a system for managing time bus arbitration systems which control critical time periods used in the arbitration schemes based on the particular applications that are running, the inclusion of multiple real time applications within a single system architecture will be difficult to achieve.